home *** CD-ROM | disk | FTP | other *** search
-
- UNIX(4) UNIX Programmer's Manual UNIX(4)
-
- NNAAMMEE
- uunniixx - UNIX-domain protocol family
-
- SSYYNNOOPPSSIISS
- ##iinncclluuddee <<ssyyss//ttyyppeess..hh>>
- ##iinncclluuddee <<ssyyss//uunn..hh>>
-
- DDEESSCCRRIIPPTTIIOONN
- The UNIX-domain protocol family is a collection of protocols that pro-
- vides local (on-machine) interprocess communication through the normal
- socket(2) mechanisms. The UNIX-domain family supports the SOCK_STREAM
- and SOCK_DGRAM socket types and uses filesystem pathnames for addressing.
-
- AADDDDRREESSSSIINNGG
- UNIX-domain addresses are variable-length filesystem pathnames of at most
- 104 characters. The include file <_s_y_s_/_u_n_._h> defines this address:
-
- struct sockaddr_un {
- u_char sun_len;
- u_char sun_family;
- char sun_path[104];
- };
-
- Binding a name to a UNIX-domain socket with bind(2) causes a socket file
- to be created in the filesystem. This file is _n_o_t removed when the sock-
- et is closed--unlink(2) must be used to remove the file.
-
- The UNIX-domain protocol family does not support broadcast addressing or
- any form of ``wildcard'' matching on incoming messages. All addresses
- are absolute- or relative-pathnames of other UNIX-domain sockets. Normal
- filesystem access-control mechanisms are also applied when referencing
- pathnames; e.g., the destination of a connect(2) or sendto(2) must be
- writable.
-
- PPRROOTTOOCCOOLLSS
- The UNIX-domain protocol family is comprised of simple transport proto-
- cols that support the SOCK_STREAM and SOCK_DGRAM abstractions.
- SOCK_STREAM sockets also support the communication of UNIX file descrip-
- tors through the use of the _m_s_g___c_o_n_t_r_o_l field in the _m_s_g argument to
- sendmsg(2) and recvmsg(2).
-
- Any valid descriptor may be sent in a message. The file descriptor(s) to
- be passed are described using a _s_t_r_u_c_t _c_m_s_g_h_d_r that is defined in the in-
- clude file <_s_y_s_/_s_o_c_k_e_t_._h>. The type of the message is SCM_RIGHTS, and the
- data portion of the messages is an array of integers representing the
- file descriptors to be passed. The number of descriptors being passed is
- defined by the length field of the message; the length field is the sum
- of the size of the header plus the size of the array of file descriptors.
-
- The received descriptor is a _d_u_p_l_i_c_a_t_e of the sender's descriptor, as if
- it were created with a call to dup(2). Per-process descriptor flags, set
- with fcntl(2), are _n_o_t passed to a receiver. Descriptors that are
- awaiting delivery, or that are purposely not received, are automatically
- closed by the system when the destination socket is closed.
-
- SSEEEE AALLSSOO
- socket(2), intro(4)
-
- "An Introductory 4.3 BSD Interprocess Communication Tutorial", _P_S_1, 7.
-
- "An Advanced 4.3 BSD Interprocess Communication Tutorial", _P_S_1, 8.
-
- BSD Experimental June 9, 1993 1
-